/*Evitando multiplas instâncias de um programa

Usando a função API CreateMutex( ), você pode evitar que o
programa seja executado mais de uma vez ao mesmo tempo.*/

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
  HANDLE hInstanceMutex = ::CreateMutex(NULL,TRUE, "PROJECT1");
  if(GetLastError() == ERROR_ALREADY_EXISTS)
  {
     // Pode ser incluido um aviso aqui se quiser.
    
if(hInstanceMutex) CloseHandle(hInstanceMutex);
     return 0;
  }
  try
  {
     Application->Initialize();
     Application->CreateForm(__classid(TForm1), &Form1);
     Application->Run();
  }
  catch (Exception &exception)
  {
     Application->ShowException(&exception);
  }
  ReleaseMutex(hInstanceMutex);
  CloseHandle(hInstanceMutex);
  return 0;
}